package code2201_2300.code30_40;

/**
 * 输入一个递增排序的数组和一个数字s，在数组中查找两个数，使得它们的和正好是s。如果有多对数字的和等于s，则输出任意一对即可。
 *
 * 输入：nums = [2,7,11,15], target = 9
 * 输出：[2,7] 或者 [7,2]
 *
 * 输入：nums = [10,26,30,31,47,60], target = 40
 * 输出：[10,30] 或者 [30,10]
 */
public class _2234twoSum {

    /**
     * 执行用时：     * 2 ms     * , 在所有 Java 提交中击败了     * 78.94%     * 的用户
     * 内存消耗：     * 55.3 MB     * , 在所有 Java 提交中击败了     * 50.44%     * 的用户
     * @param nums
     * @param target
     * @return
     */
    public int[] twoSum(int[] nums, int target) {
        int left = 0;
        int right = nums.length-1;
        int temp;
        while (left<right){
            temp = nums[left]+nums[right];
            if(temp==target)return new int[]{nums[left],nums[right]};
            if(target<temp)--right;
            if(target>temp)++left;
        }
        return null;
    }

}
